package com.hsgene.user.constants;

/**
 * 用户来源枚举
 *
 * @author wangbing
 * @version 1.0, 2018/9/4
 */
public enum CustomerSourceType {

    /**
     * 来源于APP
     */
    APP("app", "APP", "app_"),

    /**
     * 来源于PC商城
     */
    WEB("web", "web", "web_"),

    /**
     * 来源于微信小程序
     */
    WECHAT_APPLICATION("wechat_application", "微信小程序", "wa_"),

    /**
     * 来源于运营后台
     */
    WEB_CONSOLE("web_console", "运营后台", "web-m_"),

    /**
     * 未知来源
     */
    UNDEFINED("undefined", "未知来源", "undefined_");

    /**
     * 类型value
     */
    private final String value;

    /**
     * 类型描述
     */
    private final String desc;

    /**
     * sessionId 前缀
     */
    private final String sessionIdPrefix;

    CustomerSourceType(String value, String desc, String sessionIdPrefix) {
        this.value = value;
        this.desc = desc;
        this.sessionIdPrefix = sessionIdPrefix;
    }

    /**
     * 获取value对应的类型枚举
     *
     * @param value 类型
     * @return 类型枚举
     */
    public static CustomerSourceType getEnum(String value) {
        for (CustomerSourceType type : values()) {
            if (type.getValue().equalsIgnoreCase(value)) {
                return type;
            }
        }

        return CustomerSourceType.UNDEFINED;
    }

    public String getValue() {
        return value;
    }

    public String getDesc() {
        return desc;
    }

    public String getSessionIdPrefix() {
        return sessionIdPrefix;
    }
}
